package utils

import "math"

// 计算地球上任意两点(经纬度)的球面距离
func GetDistance(lat1, lng1, lat2, lng2 float64) float64 {
	radius := 6378137.0 // 赤道半径(单位m)
	// 将角度转为弧度
	radLat1 := rad(lat1)
	radLat2 := rad(lat2)
	a := radLat1 - radLat2
	b := rad(lng1) - rad(lng2)
	s := 2 * math.Asin(math.Sqrt(math.Pow(math.Sin(a/2), 2)+math.Cos(radLat1)*math.Cos(radLat2)*math.Pow(math.Sin(b/2), 2)))
	s = s * radius
	s = math.Round(s*10000) / 10000
	return s
}

// 将角度转为弧度
func rad(d float64) float64 {
	return d * math.Pi / 180.0
}
